package com.javasix;

public class Demo {
    /*javaApi:多线程
          进程：os可操作的最小单位---电脑上的应用。
    *     线程：线程是进程中可操作的最小单位---
    *
       多线程：
          定义：在一个进程中同一时刻有多个任务同时执行，开辟多个线程，
                在同一个进程中，交替执行。
          好处：
             应用层次：提高对软件的使用效率。
    *        CPU：最大限度的发挥CPU资源的作用。
    *     应用场景：
                1：使用多线程干一件事情。---共享数据
                       1)：购票。
                       2):付款。
                2：使用多线程干多件事情。----没有共享数据
    *·                 1): 扣款，发短信
        并发/并行：
           并行：多个软件在不同的核上运行。
           并发：多个软件在单核上进行交替执行。


        如何创建多线程：
             Thread：操作线程的信息。
           创建的方式：
                1：继承：extends Thread

                2：实现:implements Runnable,implements,implements Callable
           使用线程的步骤：
                1：定义线程
                2：创建线程对象
                3：启动线程
                4：终止线程

           线程的生命周期：
              新建--->就绪----->运行--->死亡
                         --阻塞
           线程调度的方法：
                setPriority():设置线程的优先级。
                sleep():让当前的线程进行休眠进入阻塞状态，且到时间后自动唤醒。
                          --->可运行状态
                join(): 使当前线程暂停执行，等待其他线程结束后再继续执行本线程
                          --->进入运行状态。
                yield():暂停当前线程，允许其他具有相同优先级的线程获得运行机会
                          --->该线程处于就绪状态，不转为阻塞状态

           多线程共享数据引发的问题：synchronized修饰方法和代码块


    * */
}
